/*
 * Clase que gestiona los gastos del videoclub(facturas)
 */

package gestorvideoclub;

import gestorvideoclub.jdbc.GastoJDBC;
import gestorvideoclub.util.UtilFecha;
import gestorvideoclub.util.introduceDatos;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;

/**
 *
 * @author Rafa Berral
 */
public class Gasto extends Contabilidad{

    Pedido pedido;
    Proveedor proveedor;

    public Gasto(){}

    public Gasto(Date fecha, double importe, String descripcion, Pedido pedido, Proveedor proveedor) {
        super(fecha, importe, descripcion, "Gasto");
        this.pedido = pedido;
        this.proveedor = proveedor;
    }

    public Pedido getPedido() {
        return pedido;
    }

    public void setPedido(Pedido pedido) {
        this.pedido = pedido;
    }

    public Proveedor getProveedor() {
        return proveedor;
    }

    public void setProveedor(Proveedor proveedor) {
        this.proveedor = proveedor;
    }

    @Override
    public boolean equals(Object o){
        boolean comp = false;
        if(o instanceof Gasto){
            Gasto gasto = (Gasto)o;
            if(this.getProveedor().getIdProveedor() == gasto.getProveedor().getIdProveedor() && this.getFecha().equals(gasto.getFecha())
                    && this.getImporte() == gasto.getImporte() && this.getDescripcion().equals(gasto.getDescripcion())){
                    comp = true;
            }
        }
        return comp;
    }

    @Override
    public String toString(){
        String cad = "Gasto de "+this.getImporte()+" euros Fecha: "+UtilFecha.fechaMostrar(this.getFecha());
        return cad;
    }
    
    @Override
    public void insertarMovimiento(Contabilidad c) {
        
    }


    public static void obtenerGastosPorFecha(Date fechaInicio, Date fechaFin){
        ArrayList<Gasto> listaGasto =  GastoJDBC.consultarGastoPorFecha(fechaInicio, fechaFin);
        double conta = 0;
        if(!listaGasto.isEmpty()){

            Iterator it = listaGasto.iterator();
            while(it.hasNext()){
                Gasto g = (Gasto)it.next();
                conta = conta + g.getImporte();
            }
            System.out.println("\nEl gasto de los gasto de las fechas indicadas es de: "+conta+" euros");
        }
        else{
            System.out.println("\n[!] No hay gastos en las fechas indicadas");
        }

    }

}
